package com.ruoyi.develop.factory.factoryProduceSaleAll.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.develop.factory.factoryProduceSaleAll.domain.FactoryProduceSaleAll;
import org.apache.ibatis.annotations.Param;

/**
 * 生产订单和产品合计关联Mapper接口
 * @author lmm
 * @date 2025-05-08
 */
public interface FactoryProduceSaleAllMapper {
    /**
     * 查询生产订单和产品合计关联
     * @param id 生产订单和产品合计关联主键
     * @return 生产订单和产品合计关联
     */
    public FactoryProduceSaleAll selectById(String id);

    public FactoryProduceSaleAll selectByGoodsAndStatusAndRemark(@Param("goodsId")String goodsId,@Param("remark")String remark,@Param("type")String type);
    /**
     * 查询生产订单和产品合计关联列表
     * @param entity 生产订单和产品合计关联
     * @return 生产订单和产品合计关联集合
     */
    public List<FactoryProduceSaleAll> selectList(FactoryProduceSaleAll entity);

    public List<FactoryProduceSaleAll> listByChild(FactoryProduceSaleAll entity);

    public List<FactoryProduceSaleAll> listFinishDoFactory(FactoryProduceSaleAll entity);

    public List<FactoryProduceSaleAll> selectByParentId(String produceId);
    /**
     * 新增生产订单和产品合计关联
     * @param entity 生产订单和产品合计关联
     * @return 结果
     */
    public int insert(FactoryProduceSaleAll entity);

    /**
     * 修改生产订单和产品合计关联
     * @param entity 生产订单和产品合计关联
     * @return 结果
     */
    public int update(FactoryProduceSaleAll entity);

    /**
     * 删除生产订单和产品合计关联
     * @param id 生产订单和产品合计关联主键
     * @return 结果
     */
    public int deleteById(String id);

    /**
     * 批量删除生产订单和产品合计关联
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteByIds(String[] ids);

    public List<FactoryProduceSaleAll> selectHaveNoFinish(String productId);

    public List<FactoryProduceSaleAll> selectHaveDo(String productId);

    void replaceGoodsInfo(Map<String, Object> params);
}
